package com.lihuinch.ti4j.chap3.demo;
/**
 * 测试
 *
 * @author lihuinch
 * @date 2018/1/3
 */
public class Test {
    public static void main(String[] args) {
        // rightShiftTest();
        // moduloTest();
        labelTest();
    }

    /**
     * 右移测试
     */
    static void rightShiftTest() {
        int aInt = +2;

        // 正数符号为不动
        System.out.println(Integer.toBinaryString(aInt >> 1));
    }

    /**
     * 取模实验
     */
    static void moduloTest() {
        // 结果与第一个数同符号
        System.out.println("-1 % 9 : " + -1 % 9);
        System.out.println("-11 % 9 : " + -11 % 9);
        System.out.println("-1 % -9 : " + -1 % -9);
        System.out.println("-11 % -9 : " + -11 % -9);
        System.out.println("1 % -9 : " + 1 % -9);
        System.out.println("11 % -9 : " + 11 % -9);
    }

    /**
     * 隐式转换实验
     */
    static void implicitConversionTest() {
        short s1 = 1;
        short s2 = 2;

        // 错误
        // short s3 = s1 + s2;
        // s2 = s2 + s2;
    }

    static void labelTest() {
        int i = 0, j = 0;
        label1 :
        for (; i < 3; ++i) {
            for (; ; ++j) {
                System.out.println("i : " + i + " j : " + j);

                if (j == 0) {
                    continue label1;
                }
            }
        }

        System.out.println();

        i = 0; j = 0;

        // 允许同名标签，但只会搜寻最近那个
        label1 :
        for (; i < 3; ++i) {
            for (; ; ++j) {
                System.out.println("i : " + i + " j : " + j);

                if (j == 0) {
                    break label1;
                }
            }
        }

        // 压根不允许有语句
        // label2:
        // char c = 'c';

    }
}
